/**
*
* @package payma_svn
* @subpackage package_name
* @author Laureano Naranjo Lucatero
* @copyright (c) Instituto Tecnologico de Jiquilpan
* @license Vea LICENCIA en el directorio raiz de este proyecto
*
*/

//TODO Revisar funcion, error en IE & comente propiedad 'for'
var archivosInd = false;
var cargadoOK = true;

function archivosIndividuales(){
	var tabla = document.getElementById('tablaDeArchivos');
	
	//Marcamos que ha seleccionado archivos individuales
	archivosInd = true;
	
	//Limpiamos lo que tiene le tabla 
	while(tabla.firstChild)
		tabla.removeChild(tabla.firstChild);
		
	//Comenzamos a agregar contenido a la tabla
	
	//Primer renglon
	var tr1 = document.createElement('tr');
	var td1 = document.createElement('td');
	var tablaI = document.createElement('table');
	var trI1 = document.createElement('tr');
	var trI2 = document.createElement('tr');
	var tdI11 = document.createElement('td');
	var tdI12 = document.createElement('td');
	var tdI21 = document.createElement('td');
	var tdI22 = document.createElement('td');
	var label1 = document.createElement('label');
	var inp1 = document.createElement('input');
	var sp1 = document.createElement('span');
	
	trI1.className = 'espaciado';
	//label1.for = 'materias';
	inp1.type = 'file';
	inp1.name = 'materias';
	inp1.className = 'Archivos';
	sp1.className = 'comentarios';
	
	tdI11.appendChild(label1);
	tdI12.appendChild(inp1);
	tdI22.appendChild(sp1);
	trI1.appendChild(tdI11);
	trI1.appendChild(tdI12);
	trI2.appendChild(tdI21);
	trI2.appendChild(tdI22);
	tablaI.appendChild(trI1);
	tablaI.appendChild(trI2);
	td1.appendChild(tablaI);
	tr1.appendChild(td1);
	tabla.appendChild(tr1);
	
	label1 = replaceHtml(label1,'Archivo de Materias (DRET):');
	sp1 = replaceHtml(sp1,'Contiene las materias del semestre');
	
	//comenzamos con el segundo Renglon
	var tr2 = document.createElement('tr');
	var td2 = document.createElement('td');
	var tabla2 = document.createElement('table');
	var trI21 = document.createElement('tr');
	var trI22 = document.createElement('tr');
	var tdI211 = document.createElement('td');
	var tdI212 = document.createElement('td');
	var tdI221 = document.createElement('td');
	var tdI222 = document.createElement('td');
	var label2 = document.createElement('label');
	var inp2 = document.createElement('input');
	var sp2 = document.createElement('span');
	
	//configuramos las propiedades
	trI21.className = 'espaciado';
	//label2.for = 'profesores';
	inp2.type = 'file';
	inp2.name = 'profesores';
	inp2.className = 'Archivos';
	sp2.className = 'comentarios';
	
	//Ahora organizamos todos los elemntos creados
	
	tdI211.appendChild(label2);
	tdI212.appendChild(inp2);
	tdI222.appendChild(sp2);
	trI21.appendChild(tdI211);
	trI21.appendChild(tdI212);
	trI22.appendChild(tdI221);
	trI22.appendChild(tdI222);
	tabla2.appendChild(trI21);
	tabla2.appendChild(trI22);
	td2.appendChild(tabla2);
	tr2.appendChild(td2);
	tabla.appendChild(tr2);
	
	label2 = replaceHtml (label2,'Archivo de Profesores (DCAT):');
	sp2 = replaceHtml (sp2,'Profesores del semestre actual');
	
	
	//Tercer Renglon de la tabla
	var tr3 = document.createElement('tr');
	var td3 = document.createElement('td');
	var tabla3 = document.createElement('table');
	var trI31 = document.createElement('tr');
	var trI32 = document.createElement('tr');
	var tdI311 = document.createElement('td');
	var tdI312 = document.createElement('td');
	var tdI321 = document.createElement('td');
	var tdI322 = document.createElement('td');
	var label3 = document.createElement('label');
	var inp3 = document.createElement('input');
	var sp3 = document.createElement('span');
	
	//configuramos las propiedades
	trI31.className = 'espaciado';
	//label3.for = 'alumnos';
	inp3.type = 'file';
	inp3.name = 'alumnos';
	inp3.className = 'Archivos';
	sp3.className = 'comentarios';
	
	//Ahora organizamos todos los elemntos creados
	
	tdI311.appendChild(label3);
	tdI312.appendChild(inp3);
	tdI322.appendChild(sp3);
	trI31.appendChild(tdI311);
	trI31.appendChild(tdI312);
	trI32.appendChild(tdI321);
	trI32.appendChild(tdI322);
	tabla3.appendChild(trI31);
	tabla3.appendChild(trI32);
	td3.appendChild(tabla3);
	tr3.appendChild(td3);
	tabla.appendChild(tr3);
	
	label3 = replaceHtml (label3,'Archivo de Alumnos (DALU):');
	sp3 = replaceHtml (sp3,'Alumnos actuales');
	
	
	
	//Cuarto Renglon de la tabla
	var tr4 = document.createElement('tr');
	var td4 = document.createElement('td');
	var tabla4 = document.createElement('table');
	var trI41 = document.createElement('tr');
	var trI42 = document.createElement('tr');
	var tdI411 = document.createElement('td');
	var tdI412 = document.createElement('td');
	var tdI421 = document.createElement('td');
	var tdI422 = document.createElement('td');
	var label4 = document.createElement('label');
	var inp4 = document.createElement('input');
	var sp4 = document.createElement('span');
	
	//configuramos las propiedades
	trI41.className = 'espaciado';
	//label4.for = 'dlis';
	inp4.type = 'file';
	inp4.name = 'dlis';
	inp4.className = 'Archivos';
	sp4.className = 'comentarios';
	
	//Ahora organizamos todos los elemntos creados
	
	tdI411.appendChild(label4);
	tdI412.appendChild(inp4);
	tdI422.appendChild(sp4);
	trI41.appendChild(tdI411);
	trI41.appendChild(tdI412);
	trI42.appendChild(tdI421);
	trI42.appendChild(tdI422);
	tabla4.appendChild(trI41);
	tabla4.appendChild(trI42);
	td4.appendChild(tabla4);
	tr4.appendChild(td4);
	tabla.appendChild(tr4);
	
	label4 = replaceHtml (label4,'Materias Con Alumnos (DLIS):');
	sp4 = replaceHtml (sp4,'Tabla Intermedia');
	
	//Quinto Renglon de la tabla
	var tr5 = document.createElement('tr');
	var td5 = document.createElement('td');
	var tabla5 = document.createElement('table');
	var trI51 = document.createElement('tr');
	var trI52 = document.createElement('tr');
	var tdI511 = document.createElement('td');
	var tdI512 = document.createElement('td');
	var tdI521 = document.createElement('td');
	var tdI522 = document.createElement('td');
	var label5 = document.createElement('label');
	var inp5 = document.createElement('input');
	var sp5 = document.createElement('span');
	
	//configuramos las propiedades
	trI51.className = 'espaciado';
	//label5.for = 'dgau';
	inp5.type = 'file';
	inp5.name = 'dgau';
	inp5.className = 'Archivos';
	sp5.className = 'comentarios';
	
	//Ahora organizamos todos los elemntos creados
	
	tdI511.appendChild(label5);
	tdI512.appendChild(inp5);
	tdI522.appendChild(sp5);
	trI51.appendChild(tdI511);
	trI51.appendChild(tdI512);
	trI52.appendChild(tdI521);
	trI52.appendChild(tdI522);
	tabla5.appendChild(trI51);
	tabla5.appendChild(trI52);
	td5.appendChild(tabla5);
	tr5.appendChild(td5);
	tabla.appendChild(tr5);
	
	label5 = replaceHtml (label5,'Materias Con Maestros (DGAU):');
	sp5 = replaceHtml (sp5,'Tabla Intermedia');
};


function validaExtensiones(){
	var inputs = document.getElementsByTagName('input');
	var frm = document.getElementById('frmImportar');
	
	for(i=0;i < inputs.length; i++){
		if(inputs[i].type == 'file')
			if (!comprueba_extension(inputs[i].value)){
				setVisibleImagenCargando(false);
				return false;
			}
	}
	
	mensaje('Enviando archivos...',_MENSAJE_INFORMACION);
	//setMensaje('Cargando archivo .zip...');
	var m = document.getElementById('mensajes');
	m.className = 'mensajesIdbf';
	
	replaceHtml(m,'Cargando archivo .zip...');
	
	var btnImportar = document.getElementById('btnImportar');
	btnImportar.disabled = true;
	cargadoOK = false;
	
	setVisibleImagenCargando(true);	
	frm.submit();
}

function setVisibleImagenCargando(pParam){
	var img = document.getElementById('imgCargando');
	if(pParam){
		img.src = 'modulos/mod_idbf/cargando.gif';
		img.title = 'Importando datos...';
		img.alt = 'Importando datos...';
	}else{
		img.src = 'modulos/mod_idbf/blank.png';
		img.title = '';
		img.alt = '';	
	}
}

var mensajeEspera = false;
var tmrAun = new Timer(30000,mensajeAun);
var tmrError = new Timer(20000,mensajePosibleError);

function setMensaje(msg){
	var m = document.getElementById('mensajes');
	m.className = 'mensajesIdbf';
	
	replaceHtml(m,msg);
	//mensaje(msg,_MENSAJE_INFORMACION);
	
	//Para el error de sobrecarga de buffer o otro error "incapturable"
	if(msg.length == 0)
		trAun.stop();
	else if(!(mensajeEspera)){
		tmrAun.stop();
		tmrAun.start();
	}
}

function mensajeAun(){
	mensajeEspera = true;
	mensaje('El sistema SIE maneja muchos datos. Por favor espere...',_MENSAJE_INFORMACION);
	tmrAun.stop();
	tmrError.start();
}

function mensajePosibleError(){
	//clearMensaje();
	//clearTimeout(tmrError);
	tmrError.stop();
	
	mensaje('Es posible que PAyMA haya fallado sin que podamos capturar el error. Contacte al soporte t&eacute;cnico de PAyMA.',_MENSAJE_ERROR);
	//Por si intenta el usuario de nuevo
	mensajeEspera = false;
	clearMensaje();
}



function clearMensaje(){
	var m = document.getElementById('mensajes');
	replaceHtml(m,'');
	setVisibleImagenCargando(false);
	var btnImportar = document.getElementById('btnImportar');
	btnImportar.disabled = false;
	tmrAun.stop();
	tmrError.stop();
	cargadoOK = true;
}

function init(){
	var ifr = document.getElementById('iframeUpload');
	cargadoOK = true;
	ifr.onload = function(){onFrameLoad();};
}

function onFrameLoad(){
	if(!cargadoOK)
		mensajePosibleError();
}

function generaReporte(pArr){
	setVisibleImagenCargando(false);
	cargadoOK = true;
	//Alumnos, docentes, materias, ...
	mensaje("Informaci&oacute;n importada correctamente",_MENSAJE_INFORMACION);
	
	var eliminaTemporales = '';
	if(!pArr[7])
		eliminaTemporales = '<br />Hubo un problema eliminando los archivos temporales.' +
			'<br />Por favor elim&iacute;nelos manualmente (/bd/dbf/*)';
	setMensaje('<strong><u>Detalles de la importaci&oacute;n</u></strong><br /><br />' + "\n"
	+ '<b>Alumnos:</b> ' + "\n" +
	(pArr[0]+pArr[1]) +' registros, ' + pArr[0] + ' agregados, ' + pArr[1] + ' repetidos.<br /><br />' + "\n"
	+ '<b>Docentes:</b> ' + "\n" +
	(pArr[2]+pArr[3]) +' registros, ' + pArr[2] + ' agregados, ' + pArr[3] + ' repetidos.<br /><br />' + "\n"
	+ '<b>Materias:</b> ' + "\n" +
	(pArr[4]+pArr[5]) +' registros, ' + pArr[4] + ' agregados, ' + pArr[5] + ' repetidos.<br /><br />' + "\n"
	+ '<b>Limpieza:</b> ' + "\n" +
	pArr[6] + ' registros da&ntilde;ados.<br>' + "\n" +
	eliminaTemporales);
	
	//Limpiamos los Timer
	tmrAun.stop();
	tmrError.stop();
}

/**
 * @author Miguel Angel Alvarez (desarrolloweb.com)
*/
function comprueba_extension(archivo) {
	if(archivosInd)
		extensiones_permitidas = new Array(".dbf"); //, ".jpg", ".doc", ".pdf");
	else
		extensiones_permitidas = new Array(".zip");
	error = "";
	if (!archivo)
	{
		//Si no tengo archivo, es que no se ha seleccionado un archivo en el formulario
		if(archivosInd)
			error = "Selecciona todos los archivos a subir.";
		else
			error = "No has seleccionado ning&uacute;n archivo.";
	}
	else{
		//recupero la extension de este nombre de archivo
		extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase();
		//compruebo si la extension esta entre las permitidas
		permitida = false;
		for (var i = 0; i < extensiones_permitidas.length; i++)
		{
			if (extensiones_permitidas[i] == extension)
			{
				permitida = true;
				break;
			}
		}
		if (!permitida)
		{
			error = "S&oacute;lo se pueden subir archivos con extensiones: " + extensiones_permitidas.join();
		}
		else{
			//formulario.submit();
			return 1;
		}
	}
	//si estoy aqui es que no se ha podido submitir
	mensaje (error,_MENSAJE_ERROR);
	return 0;
}

window.onload = init;